package com.swb.mybatis01.dao;

import com.swb.mybatis01.entity.Emp;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @title: EmpDAO
 * @author: 流沐颖
 * @date:2022/5/30 12:21
 * @description:
 * @version: study
 */
public interface EmpDAO {
    /**
     * 返回所有的emp数据
     *
     * @return
     */
    List<Emp> getAll();

    /**
     * 通过eno查找出emp数据
     *
     * @param eno
     * @return
     */
    Emp getEmpByEno(@Param("eno") int eno);

    /**
     * 通过eno 和 esex查找emp数据 即  多个参数
     *
     * @param dno
     * @param esex
     * @return
     */
    List<Emp> getEmpByDnoAndEsex(@Param("dno") int dno, @Param("esex") String esex);

    /**
     * 返回所有的String类型的参数
     *
     * @return
     */
    List<String> getAllEmpName();

    /**
     * 返回所有员工的工资 一行一列  聚合行数
     *
     * @return
     */
    double getAllEmpSalary();

    /**
     * 对象参数
     * @param e
     * @return
     */
    List<Emp> getEmpByObj(Emp e);

    /**
     * 集合对象参数
     * @param dnos
     * @return
     */
    List<Emp> getEmpByDno(List<Integer> dnos);

    /**
     * 数组参数
     * @param dnos
     * @return
     */
    List<Emp> getEmpByDnoByArray(Integer[] dnos);

    /**
     * 集合  两个时间之间
     * @param param
     * @return
     */
    List<Emp> getEmpByBornDates(Map<String,Object> param);




}
